package #(javaGenTool.servicePackagePath);

import #(javaGenTool.boPackagePath).#(javaGenTool.boClassName);
import #(javaGenTool.qoPackagePath).#(javaGenTool.qoClassName);
import #(javaGenTool.voPackagePath).#(javaGenTool.voClassName);

import com.mybatisflex.core.paginate.Page;

import java.util.List;

/**
 * #(table.getComment()) 服务层。
 *
  * @author #(javadocConfig.getAuthor())
  * @since #(javadocConfig.getSince())
 */
public interface #(javaGenTool.serviceClassName)  {


    /**
     * 新增
     *
     * @param #(javaGenTool.lowerBoClassName) 表单
     * @return {@code true} 添加成功，{@code false} 添加失败
     */
    boolean add(#(javaGenTool.boClassName) #(javaGenTool.lowerBoClassName));

    /**
     * 根据主键删除
     *
     * @param id 主键
     * @return {@code true} 删除成功，{@code false} 删除失败
     */
    boolean remove(Long id);

    /**
     * 根据主键更新
     *
     * @param #(javaGenTool.lowerBoClassName) 表单
     * @return {@code true} 更新成功，{@code false} 更新失败
     */
    boolean update(#(javaGenTool.boClassName) #(javaGenTool.lowerBoClassName));

    /**
     * 条件查询所有数据
     *
     * @return 条件查询所有数据
     */
    List<#(javaGenTool.voClassName)> list(#(javaGenTool.qoClassName) #(javaGenTool.lowerQoClassName));

    /**
     * 根据主键获取详细信息。
     *
     * @param id 主键
     * @return 详情
     */
    #(javaGenTool.voClassName) getInfo(@PathVariable Long id);

    /**
     * 分页查询
     *
     * @param page 分页对象
     * @return 分页对象
     */
    Page<#(javaGenTool.voClassName)> page(#(javaGenTool.qoClassName) page);

}

